home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)te.d64 / patch.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  5KB  |  169 lines

  1. 10 REM DISK PATCH BY KEVIN ANDERSON
  2. 12 REM REVISION A.4  2/20/84
  3. 15 DIM B$(255),D$(255),K$(75):N$=CHR$(0)
  4. 16 FORI=1TO75:READK$(I):NEXT
  5. 17 FORI=0TO255:B$(I)=N$:D$(I)=N$:NEXT
  6. 18 POKE53280,15:POKE53281,15:PRINTCHR$(142);"[144]"
  7. 20 PRINT"[147][146]               PATCH  [146][144]"
  8. 30 PRINT" F1[146]  READ A BLOCK INTO THE BUFFER"
  9. 35 PRINT" F2[146]  PRINT THE BUFFER"
  10. 40 PRINT" F3[146]  EDIT THE BUFFER"
  11. 45 PRINT" F4[146]  COMPARE BUFFER WITH DISK"
  12. 50 PRINT" F5[146]  WRITE THE BUFFER TO DISK"
  13. 55 PRINT" F6[146]  CHECK DISK STATUS"
  14. 60 PRINT" F7[146]  EXIT
  15. 70 [161]A$:[139][198](A$[170]N$)[179]133[176][198](A$[170]N$)[177]139[167]70
  16. 72 [145]([198](A$[170]N$)[171]132)[137] 200,500,2000,80,3000,5000,6000
  17. 80 [153]"* BYE *":[128]
  18. 200 [153]"LOAD         READ BLOCK FROM DISK WAITSTOP":[153]:[153]
  19. 210 [133]"TRACK (1-35)";TR
  20. 222 [139]TR[177]35[176]TR[179]1[167][153]"ON";:[137]210
  21. 223 [139]TR[177]30[167]SM[178]16:[137]227
  22. 224 [139]TR[177]24[167]SM[178]17:[137]227
  23. 225 [139]TR[177]17[167]SM[178]18:[137]227
  24. 226 SM[178]20
  25. 227 [153]"SECTOR (0-";SM;"CMD)";:[133] SE
  26. 228 [139]SE[177]SM[176]SE[179]0[167][153]"ON";:[137]227
  27. 230 [159]15,8,15,"I0":[159]2,8,2,"#"
  28. 240 [152]15,"U1:"2;0;TR;SE:[152]15,"B-P:2,0"
  29. 270 [129]I[178]0[164]255:[161]#2,A$:B$(I)[178][200]((A$[170]N$),1):[130]
  30. 340 [160]2:[160]15
  31. 350 [137]20
  32. 500 P[178][171]100
  33. 510 [153]"LOAD            EDIT BLOCK WAITSTOP"
  34. 520 [153]"  F1WAIT  LIST NEXT 16 VALUES"
  35. 530 [153]"  F3WAIT  LIST PREVIOUS 16 VALUS"
  36. 540 [153]"  F5WAIT  CHANGE A VALUE"
  37. 550 [153]"  F7WAIT  EXIT EDIT ROUTINE"
  38. 552 [153]:[153]"WORD#  HEX     DEC  ASCII   BASIC"
  39. 555 [137]650
  40. 560 [161]A$:[139]A$[178]""[167]560
  41. 570 [139]A$[178]"LET"[167][137]20
  42. 580 [139]A$[178]"INPUT"[167]P[178]P[170]16:[137]650
  43. 590 [139]A$[178]"DIM"[167]P[178]P[171]16:[137]650
  44. 600 [139]A$[178]"READ"[167]800:[143] CHANGE A VALUE
  45. 610 [137]560
  46. 650 [143] LIST 16 VALUES IN HEX DECIMAL ASCII
  47. 655 [139]P[179]0[167]P[178]0
  48. 656 [139]P[177]255[171]15[167]P[178]255[171]15
  49. 660 [153]""
  50. 670 [129]I[178]P[164]P[170]15
  51. 675 A$[178]B$(I)
  52. 685 N[178][198](A$):H%[178]N[173]16:L%[178]N[171]16[172]H%
  53. 687 H%[178]H%[170]48:L%[178]L%[170]48
  54. 690 H%[178]H%[171]7[172](H%[177]57):L%[178]L%[171]7[172](L%[177]57)
  55. 695 H$[178][199](H%)[170][199](L%)
  56. 696 [153]"                                      ";
  57. 697 [153]"CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  58. 698 S[178]2:[139]I[179]100[167]S[178]3:[139]I[179]10[167]S[178]4
  59. 700 [153]I;[166]S);H$,[166]4);[198](A$),"'";
  60. 705 [139][198](A$)[177]31[175][198](A$)[179]91[167][153]A$;"'";
  61. 707 [139][198](A$)[179]32[176][198](A$)[177]90[167][153]" '";
  62. 708 [139][198](A$)[179]128[176][198](A$)[177]203[167][153]
  63. 709 [139][198](A$)[177]127[175][198](A$)[179]204[167][153][166]5);K$([198](A$)[171]127)
  64. 710 [130]I
  65. 720 [137]560
  66. 800 [153]"";
  67. 805 [153]"                      ":[153]"ON";
  68. 810 [133]"WORD #";WN
  69. 813 [139]WN[179]0[176]WN[177]255[167]800
  70. 815 [153]"ON              ":[153]"ON";
  71. 820 [133]"ASCII, DECIMAL, OR HEX";MO$
  72. 822 [153]"ON                          ":[153]"ON";
  73. 825 NX[178][171]1000
  74. 830 [139][200](MO$,1)[178]"A"[167][133]"NEW CHARACTER";NC$:NX[178][198](NC$)
  75. 835 [139][200](MO$,1)[178]"D"[167][133]"NEW DECIMAL";NV:NX[178]NV
  76. 840 [139][200](MO$,1)[178]"H"[167][133]"NEW HEX";HX$
  77. 880 [139]NX[179][177][171]1000[167]1000:[143] INSERT NEW VALUE
  78. 890 [139][200](MO$,1)[179][177]"H"[167][153]"";:[137]815
  79. 895 [139][195](HX$)[178]1[167]HX$[178]"0"[170]HX$
  80. 900 H%[178][198](HX$)[171]48 :L%[178][198]([202](HX$,2,1))[171]48
  81. 910 [139]H%[177]9[167]H%[178]H%[171]7
  82. 920 [139]L%[177]9[167]L%[178]L%[171]7
  83. 930 NX[178]16[172]H%[170]L%
  84. 1000 [139]NX[179]0[176]NX[177]255[167][153]"OUT OF RANGE":[129]I[178]1[164]1000:[130]I:[137]510
  85. 1010 NN$[178][199](NX)
  86. 1020 B$(WN)[178]NN$
  87. 1200 [137]510
  88. 2000 [153]"LOAD         WRITE BLOCK TO DISK WAITSTOP"
  89. 2010 [153]""
  90. 2020 [153]"";TR:[153]"ON";:[133]"TRACK ";TR
  91. 2030 [153]"";SE:[153]"ON";:[133]"SECTOR";SE
  92. 2040 [153]:[153]"TRACK";TR;" SECTOR";SE;" CORRECT";:[133] A$
  93. 2050 [139]A$[179][177]"Y"[167]2000
  94. 2060 [159]15,8,15:[159]2,8,2,"#"
  95. 2070 [152]15,"B-P:"5;0
  96. 2075 [152]15,"M-W:"[199](0)[199](5);1;B$(0)
  97. 2090 [129]I[178]1[164]255:[152]2,B$(I);:[130]I
  98. 2091 [152]15,"U2:"2;0;TR;SE
  99. 2099 [160]2:[160]15:[137]20
  100. 3000 [153]"LOAD         PRINT BUFFER WAITSTOP"
  101. 3008 [153]"F1WAIT   HEX"
  102. 3010 [153]"F3WAIT   ASCII"
  103. 3011 [153]"F5WAIT   DECIMAL"
  104. 3013 [161]A$:[139]A$[178]""[167]3013
  105. 3022 [159]4,4
  106. 3024 [152]4," ":[152]4," ":[152]4," "
  107. 3026 [152]4,"   TRACK";TR;"     SECTOR";SE
  108. 3030 [152]4," "
  109. 3050 [129] I[178]0[164]240[169]16:[152]4,I;
  110. 3052 [139]I[179]10[167][152]4," ";
  111. 3053 [139]I[179]100[167][152]4," ";
  112. 3055 [129]L[178]1[164]16
  113. 3060 C$[178]B$(I[170]L[171]1)
  114. 3062 [139]A$[179][177]"DIM"[167]3070
  115. 3064 [139][198](C$)[177]30[175][198](C$)[179]90[167]H$[178]" "[170]C$:[137]4030
  116. 3066 H$[178]" *":[137]4030
  117. 3070 [139]A$[178]"INPUT"[167]3079
  118. 3071 H$[178][202]([196]([198](C$)),2)
  119. 3073 [139][195](H$)[179]3[167]H$[178]H$[170]" ":[137]3073
  120. 3077 [137]4030
  121. 3079 N[178][198](C$):H%[178]N[173]16:L%[178]N[171]16[172]H%
  122. 3080 H%[178]H%[170]48:L%[178]L%[170]48
  123. 3090 H%[178]H%[171]7[172](H%[177]57):L%[178]L%[171]7[172](L%[177]57)
  124. 4000 H$[178][199](H%)[170][199](L%)
  125. 4030 [139]A$[178]"INPUT"[176]A$[178]"DIM"[167] [152]4,H$;"  ";
  126. 4031 [139]A$[178]"READ"[167][152]4,H$;" ";
  127. 4040 [130] L
  128. 4045 [152]4," "
  129. 4048 [130]I
  130. 4050 [152]4:[152]4:[160]4:[137]20
  131. 5000 [153]"LOAD     COMPARE BUFFER WITH DISK WAITSTOP":[153]:[153]
  132. 5210 [133]"TRACK (1-35)";TC
  133. 5222 [139]TC[177]35[176]TC[179]1[167][153]"ON";:[137]5210
  134. 5223 [139]TC[177]30[167]SM[178]16:[137]5227
  135. 5224 [139]TC[177]24[167]SM[178]17:[137]5227
  136. 5225 [139]TC[177]17[167]SM[178]18:[137]5227
  137. 5226 SM[178]20
  138. 5227 [153]"SECTOR (0-";SM;"CMD)";:[133] SC
  139. 5228 [139]SC[177]SM[176]SC[179]0[167][153]"ON";:[137]5227
  140. 5230 [159]15,8,15,"I0":[159]2,8,2,"#"
  141. 5240 [152]15,"U1:"2;0;TC;SC
  142. 5245 [152]15,"B-P:2,0"
  143. 5270 [129]I[178]0[164]255:[161]#2,A$:D$(I)[178][200]((A$[170]N$),1):[130]
  144. 5280 [160]2:[160]15
  145. 5300 [143] NOW COMPARE THE TWO
  146. 5310 [153]:  EC[178]0
  147. 5320 [129]I[178]0[164]255
  148. 5330 [139]B$(I)[179][177]D$(I)[167][153]"  #";I,"BUF:";[198](B$(I)),"DSK:";[198](D$(I)):EC[178]EC[170]1
  149. 5335 [161]A$:[139]A$[178]""[167]5340
  150. 5336 [161]A$:[139]A$[178]""[167]5336
  151. 5340 [130]
  152. 5350 [139] EC[178]0[167][153]:[153]"PERFECT MATCH"
  153. 5360 [139] EC[177]0[167][153]:[153]"     ";EC;"MISMATCHES"
  154. 5370 [153]:[153]"  HIT A KEY TO CONTINUE"
  155. 5380 [161]A$:[139]A$[178]""[167]5380
  156. 5390 [137] 20
  157. 6000 [153]"LOAD         CHECK DISK STATUS WAITSTOP"
  158. 6020 [153]:[153]:[153]:[159]15,8,15:[132]15,AA,AA$,BB,CC
  159. 6030 [160]15:[153]AA,AA$,BB,CC
  160. 6060 [153]:[153]"     HIT A KEY TO CONTINUE"
  161. 6070 [161]A$:[139]A$[178]""[167]6070
  162. 6080 [137]20
  163. 20000 [143] 75 BASIC KEY WORDS
  164. 20010 [131] END,FOR,NEXT,DATA,INPUT#,INPUT,DIM,READ,LET,GOTO,RUN,IF,RESTORE,GOSUB
  165. 20020 [131] RETURN,REM,STOP,ON,WAIT,LOAD,SAVE,VERIFY,DEF,POKE,PRINT#,PRINT,CONT
  166. 20030 [131] LIST,CLR,CMD,SYS,OPEN,CLOSE,GET,NEW,TAB(,TO,FN,SPC(,THEN,NOT,STEP
  167. 20040 [131] +,-,*,/,^,AND,OR,>,=,<,SGN,INT,ABS,USR,FRE,POS,SQR,RND,LOG,EXP,COS
  168. 20050 [131] SIN,TAN,ATN,PEEK,LEN,STR$,VAL,ASC,CHR$,LEFT$,RIGHT$,MID$
  169.